/*
@auther fenglei
*/
package gin_server

import (
	"time"

	"github.com/gin-gonic/gin"
)

// ExampleUsage 展示如何使用新的服务器配置方式
func ExampleUsage() {
	// 创建路由
	router := gin.Default()

	// 方式1: 使用默认超时值（推荐用于开发环境）
	err := RunWindowsServer(":8080", router)
	if err != nil {
		panic(err)
	}

	// 方式2: 使用自定义超时配置
	opts := NewServerOptions().
		WithReadTimeout(30 * time.Second).
		WithWriteTimeout(30 * time.Second)
	err = RunWindowsServer(":8081", router, opts)
	if err != nil {
		panic(err)
	}

	// 方式3: 使用默认超时值（保持向后兼容）
	err = RunWindowsServerWithDefaults(":8082", router)
	if err != nil {
		panic(err)
	}

	// 方式4: 链式调用，更优雅的配置
	err = NewServerOptions().
		WithReadTimeout(15*time.Second).
		WithWriteTimeout(15*time.Second).
		Run(":8083", router)
	if err != nil {
		panic(err)
	}

	// 方式5: 混合配置（读超时自定义，写超时默认）
	opts5 := NewServerOptions().
		WithReadTimeout(20 * time.Second)
	err = RunWindowsServer(":8084", router, opts5)
	if err != nil {
		panic(err)
	}
}

// 为 ServerOptions 添加便捷的 Run 方法
func (opts *ServerOptions) Run(address string, routers *gin.Engine) error {
	return RunWindowsServer(address, routers, opts)
}
